﻿using System;
using System.Windows;
using Oxage.Common;

namespace Oxage.Rasterizer
{
	public interface IContractService
	{
		/// <summary>
		/// When implemented gets a full path to a xaml document.
		/// </summary>
		string DocumentPath { get; }

		/// <summary>
		/// When implemented gets a loaded xaml document.
		/// </summary>
		FrameworkElement DocumentContent { get; }

		/// <summary>
		/// When implemented occurs when a new document has been opened.
		/// </summary>
		event EventHandler DocumentChanged;

		/// <summary>
		/// When implemented gets a type of project (e.g. WPF, Silverlight).
		/// </summary>
		ProjectTypes ProjectType { get; }

		/// <summary>
		/// When implemented occurs when a debug message should be sent.
		/// </summary>
		event EventHandler<EventArgs<string>> DebugMessage;

		/// <summary>
		/// When implemented writes a line to the logging window.
		/// </summary>
		/// <param name="message"></param>
		void WriteLine(string message);
	}
}
